function getRequest() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const result = "成功";
      if (result) {
        resolve(result);
      } else {
        reject("result没有结果");
      }
    }, 300);
  });
}

function handleErr(callback) {
  return async function (params) {
    try {
      const res = await callback(params);
      return Promise.resolve([null, res]);
    } catch (error) {
      return Promise.resolve([error, null]);
    }
  };
}

async function request() {
  // 1. .then
  // 2. await
  // 怎么处理错误的结果
  // try catch
  // try{
  //   const res = await getRequest();
  //   console.log(res,'12345')
  // }catch{
  //   console.log("err");
  // }

  // 对上层应用无感
  // 高阶函数  参数是一个函数 返回值是一个函数
  // 高阶组件  参数是一个组件 返回值是一个组件
  const [err, res] = await handleErr(getRequest)("parmas");
  if(err){
    console.log('出错')
  }else{
    console.log(res)
  }
  // 优雅的处理错误的结果
}
request();
